Пример процедуры измерения контрольного времени для повторной посылки сегментов

Во-первых, измерьте время, прошедшее между посылкой октета данных, имеющего некий определенный номер в очереди, и получение подтверждения, указывающего наряду с другими и на этот номер (посылаемые сегменты не обязаны соответствовать полученным сегментам).

Измеренная временная задержка - это время обращения (Round Trip Time – RTT). Следующий шаг - вычисление усредненного времени обращения (Smoothed Round Trip Time - SRTT):

SRTT = (ALPHA * RSTT) + ( (1-ALPHA) * RTT)            

Затем с помощью найденного значения определяется контрольное время повторной посылки (Retransmission Timeout – RTO):

RTO = min[ UBOUND, max[ LBOUND, (BETA * SRTT) ]]         

где UBOUND - верхний предел контрольного времени (например, 1 мин), LBOUND - нижний предел (например, 1 сек). ALPHA - фактор сглаживания (например, от 0.8 до 0.9), а BETA - фактор изменения задержки (например, от 1.3 до 2.0).

Hosted by uCoz